package org.tyszecki.rozkladpkp; import java.util.List; import android.content.Context; import android.location.Address; import android.location.Geocoder; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.util.Log; public class LocationHelper { public enum LocationState {Unavailable, Pending, Ready}; private static LocationHelper instance = null; public static void init() { if(instance == null) instance = new LocationHelper(); } private static LocationState state; private static String location = null; private LocationHelper() { state = LocationState.Pending; try{ LocationManager lm = (LocationManager) RozkladPKPApplication.getAppContext().getSystemService(Context.LOCATION_SERVICE); lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 60000, 2000, new LocationListener() { @Override public void onStatusChanged(String provider, int status, Bundle extras) {} @Override public void onProviderEnabled(String provider) {} @Override public void onProviderDisabled(String provider) { state = LocationState.Unavailable; } @Override public void onLocationChanged(Location loc) { Geocoder c = new Geocoder(RozkladPKPApplication.getAppContext()); try { List<Address> addresses = c.getFromLocation(loc.getLatitude(), loc.getLongitude(), 1); location = addresses.get(0).getLocality(); state = LocationState.Ready; } catch (Exception e) {} } }); }catch (Exception e) { state = LocationState.Unavailable; } } static LocationState getLocationState() { return state; } static String getLocation() { return location; } }